// Original by senocular.com, used with permission // Modified by Aaron Beall (abeall.com) // Version 1.3 function RoundNodesToHalfPixels(){ var n , cs, ns, ss = fw.selection.length; var distp, dists, angp, angs, ang, ppt, spt; while(ss--){ if(!fw.selection[ss].contours) continue; cs = fw.selection[ss].contours.length; while (cs--){ ns = fw.selection[ss].contours[cs].nodes.length; while (ns--){ if (fw.selection[ss].contours[cs].nodes[ns].isSelectedPoint || fw.activeTool != 'Subselection'){ n = fw.selection[ss].contours[cs].nodes[ns]; var vx = Math.floor(n.x) + .5 - n.x, vy = Math.floor(n.y) + .5 - n.y; var hasPred = n.predX != n.x || n.predY != n.y, hasSucc = n.succX != n.x || n.succY != n.y; n.x = Math.floor(n.x) + .5; n.y = Math.floor(n.y) + .5; n.predX = hasPred ? n.predX + vx : n.x; n.predY = hasPred ? n.predY + vy : n.y; n.succX = hasSucc ? n.succX + vx : n.x; n.succY = hasSucc ? n.succY + vy : n.y; } } } } } //try{ RoundNodesToHalfPixels(); //}catch(e){alert([e.lineNumber, e, e.fileName])}